--- a/cmd/bootmenu.c
+++ b/cmd/bootmenu.c
@@ -452,7 +452,11 @@ static void menu_display_statusline(stru
 	printf(ANSI_CURSOR_POSITION, 1, 1);
 	puts(ANSI_CLEAR_LINE);
 	printf(ANSI_CURSOR_POSITION, 2, 3);
-	puts("*** U-Boot Boot Menu ***");
+	if (menu->mtitle)
+		puts(menu->mtitle);
+	else
+		puts("  *** U-Boot Boot Menu ***");
+
 	puts(ANSI_CLEAR_LINE_TO_END);
 	printf(ANSI_CURSOR_POSITION, 3, 1);
 	puts(ANSI_CLEAR_LINE);
@@ -537,6 +541,7 @@ static enum bootmenu_ret bootmenu_show(i
 		return BOOTMENU_RET_FAIL;
 	}
 
+	bootmenu->mtitle = env_get("bootmenu_title");
 	for (iter = bootmenu->first; iter; iter = iter->next) {
 		if (menu_item_add(menu, iter->key, iter) != 1)
 			goto cleanup;
--- a/include/menu.h
+++ b/include/menu.h
@@ -45,6 +45,7 @@ struct bootmenu_data {
 	int active;			/* active menu entry */
 	int count;			/* total count of menu entries */
 	struct bootmenu_entry *first;	/* first menu entry */
+	char *mtitle;			/* custom menu title */
 	bool last_choiced;
 };
 
